﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Biblioteca.classesBasicas.pessoa;
using Biblioteca.classesBasicas.equipamento;
using Biblioteca.classesBasicas.jogo;

namespace Biblioteca.fachada
{
    interface IFachada
    {
        //CRUD Cliente
        void cadastrarCliente(Cliente cliente);

        void alterarCliente(Cliente cliente);

        void removerCliente(Cliente cliente);

        Cliente consultarPorIdCliente(String id);

        List<Cliente> listarCliente();


        //CRUD Funcionário
        void cadastrarFuncionario(Funcionario funcionario);

        void alterarFuncionario(Funcionario funcionario);

        void removerFuncionario(Funcionario funcionario);

        Funcionario consultarPorIdFuncionario(String id);

        List<Funcionario> listarFuncionario();


        //CRUD Arma
        void cadastrarArma(Arma arma);

        void alterarArma(Arma arma);

        void removerArma(Arma arma);

        Arma consultarPorIdArma(String id);

        List<Arma> listarArma();


        //CRUD Capacete
        void cadastrarCapacete(Capacete capacete);

        void alterarCapacete(Capacete capacete);

        void removerCapacete(Capacete capacete);

        Capacete consultarPorIdCapacete(String id);

        List<Capacete> listarCapacete();


        //CRUD Cilindro
        void cadastrarCilindro(Cilindro cilindro);

        void alterarCilindro(Cilindro cilindro);

        void removerCilindro(Cilindro cilindro);

        Cilindro consultarPorIdCilindro(String id);

        List<Cilindro> listarCilindro();
        

        //CRUD Colete
        void cadastrarColete(Colete colete);

        void alterarColete(Colete colete);

        void removerColete(Colete colete);

        Colete consultarPorIdColete(String id);

        List<Colete> listarColete();


        //CRUD Campo
        void cadastrarCampo(Campo campo);

        void alterarCampo(Campo campo);

        void removerCampo(Campo campo);

        Campo consultarPorIdCampo(String id);

        List<Campo> listarCampo();


        //CRUD Partida
        void cadastrarPartida(Partida partida);

        void alterarPartida(Partida partida);

        void removerPartida(Partida partida);

        Partida consultarPorIdPartida(String id);

        List<Partida> listarPartida();


        //CRUD Reserva
        void cadastrarReserva(Reserva reserva);

        void alterarReserva(Reserva reserva);

        void removerReserva(Reserva reserva);

        Reserva consultarPorIdReserva(String id);

        List<Reserva> listarReserva();
    }
}